#ifndef ATHREAD_H
#define ATHREAD_H

#include <QThread>
#include <vtkSmartPointer.h>
#include <vtkBMPReader.h>
#include <vtkImageData.h>
#include <vtkImageChangeInformation.h>
#include <vtkImageViewer2.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkPolyData.h>
#include <vtkPNGReader.h>
#include <vtkSTLWriter.h>
#include <vtkDecimatePro.h>

class MyThread : public QThread {
    Q_OBJECT
    typedef struct {
        int  begin_dcm  ;// 此线程分配dcm起始序号
        int  sum_dcm  ;// 此线程分配dcm数量
        int  begin_array ;// 此线程在数组起始序号
        int  gpu;// 此线程调用gpu序号
        double *testshortarr; // 输出数组
        vtkNew<vtkImageData> imagedata;// 读取imagedata
    } LVstruct;
  public:
    MyThread();
    void SetLStruct(
        int  begin_dcm,
        int  sum_dcm,
        int  begin_array,
        int  gpu,
        double *testshortarr,
        vtkSmartPointer<vtkImageData> imagedata_);
  Q_SIGNALS:
    void SignalThreadEnd(); // 结束信号
  protected:
    virtual void run();
  private:
    LVstruct this_lv_struct_;
};


#endif // ATHREAD_H
